% appendix/ack/ack.tex

\chapter{Credits}
\label{app:ack:Credits}

\section{Authors}

% CCASA 3.0 US wording from John Wiegley.
%  http://www.newartisans.com/blog_assets/git.from.bottom.up.pdf

\section{Reviewers}

\begin{itemize}
\item	Alan Stern (Section~\ref{sec:advsync:Memory Barriers}).
\item	Andi Kleen (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Andrew Morton (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Andy Whitcroft (Section~\ref{sec:defer:RCU Fundamentals},
	Section~\ref{sec:defer:RCU Linux-Kernel API},
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview},
	Section~\ref{app:rcuimpl:Preemptible RCU})).
\item	Artem Bityutskiy (Section~\ref{sec:advsync:Memory Barriers},
	Appendix~\ref{chp:app:whymb:Why Memory Barriers?}).
\item	Dave Keck (Chapter~\ref{chp:app:whymb:Why Memory Barriers?}).
\item	David S. Horner
	(Section~\ref{app:formal:Promela Parable: dynticks and Preemptible RCU},
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Gautham Shenoy (Section~\ref{sec:defer:RCU Fundamentals},
	Section~\ref{sec:defer:RCU Linux-Kernel API}),
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Ingo Molnar (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	``jarkao2'', AKA LWN guest \#41960 (Section~\ref{sec:defer:RCU Linux-Kernel API}).
\item	Jonathan Walpole (Section~\ref{sec:defer:RCU Linux-Kernel API}).
\item	Josh Triplett
	(Section~\ref{app:formal:Formal Verification},
	Section~\ref{app:rcuimpl:Preemptible RCU},
	Section~\ref{app:rcuimpl:Sleepable RCU Implementation},
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Lai Jiangshan (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Manfred Spraul (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Mathieu Desnoyers (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Michael Factor (Section~\ref{sec:future:Transactional Memory}).
\item	Mike Fulton (Section~\ref{sec:defer:RCU Fundamentals}).
\item	Nivedita Singhvi (Section~\ref{app:rcuimpl:Preemptible RCU}).
\item	Oleg Nesterov (Section~\ref{app:rcuimpl:Preemptible RCU}).
\item	Peter Zijlstra
	(Section~\ref{sec:defer:RCU Usage}, % Lanin and Shasha citation.
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Richard Woodruff (Section~\ref{chp:app:whymb:Why Memory Barriers?}).
\item	Robert Bauer (Section~\ref{app:rcuimpl:Preemptible RCU}).
\item	Steve Rostedt (Section~\ref{app:rcuimpl:Preemptible RCU}).
\item	Suparna Bhattacharya
	(Section~\ref{app:formal:Formal Verification}).
\item	Vara Prasad
	(Section~\ref{app:formal:Promela Parable: dynticks and Preemptible RCU}).
\end{itemize}

Reviewers whose feedback took the extremely welcome form of a patch
are credited in the git logs.

\section{Machine Owners}

A great debt of thanks goes to Martin Bligh, who originated the
Advanced Build and Test (ABAT) system at IBM's Linux Technology
Center, as well as to Andy Whitcroft, Dustin Kirkland, and many
others who extended this system.

Many thanks go also to a great number of machine owners:

\begin{itemize}
\item	Andrew Theurer
	(Section~\ref{app:formal:Promela Parable: dynticks and Preemptible RCU},
	Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Andy Whitcroft (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Anton Blanchard (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Chris McDermott (Section~\ref{sec:cpu:Costs of Operations}).
\item	Darrick Wong (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	David "Shaggy" Kleikamp (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Jon M. Tollefson (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Jose R. Santos (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Marvin Heffler (Numerous).
\item	Nathan Lynch (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Nishanth Aravamudan (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\item	Tim Pepper (Section~\ref{app:rcuimpl:rcutree:Hierarchical RCU Overview}).
\end{itemize}

\section{Original Publications}

\ListOriginalPublications

\section{Figure Credits}

\ListContributions

\section{Other Support}

We owe thanks to many CPU architects for patiently explaining the
instruction- and memory-reordering features of their CPUs, particularly
Wayne Cardoza, Ed Silha, Anton Blanchard, Tim Slegel, Juergen Probst,
Ingo Adlung, and Ravi Arimilli.
Wayne deserves special thanks for his patience in explaining Alpha's reordering
of dependent loads, a lesson that Paul resisted quite strenuously!

Portions of this material are based upon work supported by the National
Science Foundation under Grant No. CNS-0719851.
